package dados.cardapio;

import negocio.cardapio.Produto;

public class CadastroDeProduto {
	
	private Produto[] listaProduto;
	private int indice;
	private static final int tamanhoLista = 100;
	private int tamanhoListaPizza = 0, tamanhoListaAcompanhamento = 0, tamanhoListaBebida = 0, tamanhoListaSobremesa = 0;
	
	
	public CadastroDeProduto(){
		this.indice = 0;
		this.listaProduto = new Produto[tamanhoLista];
	}
	
	public void adicionarProduto(Produto produto){
		this.listaProduto[indice] = produto;
		this.indice +=1;
	}
	
	public int procurarPosicaoProduto(String nomeProduto){
		int i = 0;
		int posicao = -1;
		boolean achou = false;
		
		while(i<this.indice && !achou){
			if(this.listaProduto[i].getNome().equals(nomeProduto)){
				posicao = i;
				achou = true;
				
			}
			i+=1;
		}
		return posicao;
	}
	
	public boolean existeProduto(String nomeProduto){
		boolean existe = false;
		if(this.procurarPosicaoProduto(nomeProduto) != -1){
			existe = true;
		}
		
		return existe;
		
	}
	
	public void excluirProduto(String nomeProduto){
		if(this.existeProduto(nomeProduto)){
			int posicao = this.procurarPosicaoProduto(nomeProduto);
			this.listaProduto[posicao] = this.listaProduto[indice-1];
			this.listaProduto[indice-1] = null;
			this.indice -=1;
		}
	}
	
	public Produto recuperarProduto(String nomeProduto){
		int posicao = -1;
		if(this.existeProduto(nomeProduto)){
			 posicao = this.procurarPosicaoProduto(nomeProduto);
		}
		return this.listaProduto[posicao];
	}
	
	public String[] getListaNomePizzas(){
		String[] listaNomeProdutos = new String[tamanhoListaPizza];
		
		int a =0;
		for(int i=0;i<=listaProduto.length-1;i++){
			if(listaProduto[i] != null){
					if(listaProduto[i].getTipo().toUpperCase().equals("PIZZA")){
						listaNomeProdutos[a] = listaProduto[i].getNome();
						a++;
					}
			}
		}
		
		return listaNomeProdutos;
		
	}
	
	public String[] getListaNomeAcompanhamentos(){
		String[] listaNomeProdutos = new String[tamanhoListaAcompanhamento];
		
		int a = 0;
		for(int i = 0; i<= listaProduto.length-1;i++){
			if(listaProduto[i] != null){
				if(listaProduto[i].getTipo().toUpperCase().equals("ACOMPANHAMENTO")){
					listaNomeProdutos[a] = listaProduto[i].getNome();
					a++;
				}
			}
		}
		
		return listaNomeProdutos;
	}
	
	public String[] getListaNomeBebidas(){
		String[] listaNomeProdutos = new String[tamanhoListaBebida];
		
		int a = 0;
		for(int i = 0; i<= listaProduto.length-1;i++){
			if (listaProduto[i] != null){
				if(listaProduto[i].getTipo().toUpperCase().equals("BEBIDA")){
					listaNomeProdutos[a] = listaProduto[i].getNome();
					a++;
				}
			}
		}
		return listaNomeProdutos;
	}
	
	public String[] getListaNomeSobremesas(){
		String[] listaNomeProdutos = new String[tamanhoListaSobremesa];
		
		int a = 0;
		for(int i =0; i<=listaProduto.length-1;i++){
			if(listaProduto[i] != null){
				if(listaProduto[i].getTipo().toUpperCase().equals("SOBREMESA")){
					listaNomeProdutos[a] = listaProduto[i].getNome();
					a++;
				}
			}
		}
		return listaNomeProdutos;
	}

	public void setTamanhoListaPizza(int tamanhoListaPizza) {
		this.tamanhoListaPizza += tamanhoListaPizza;
	}

	public void setTamanhoListaAcompanhamento(int tamanhoListaAcompanhamento) {
		this.tamanhoListaAcompanhamento += tamanhoListaAcompanhamento;
	}

	public void setTamanhoListaBebida(int tamanhoListaBebida) {
		this.tamanhoListaBebida += tamanhoListaBebida;
	}

	public void setTamanhoListaSobremesa(int tamanhoListaSobremesa) {
		this.tamanhoListaSobremesa += tamanhoListaSobremesa;
	}
	
	
	
	
	

}
